{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "e7ce3a9e",
   "metadata": {},
   "source": [
    "## 简介"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "de4d3ce4",
   "metadata": {},
   "source": [
    "evaluate库是一个非常简单易用的机器学习模型评估函数库<br>\n",
    "只需要一行代码便可以加载各种任务的评估函数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "f0a3a9de",
   "metadata": {},
   "outputs": [],
   "source": [
    "import evaluate"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7767baad",
   "metadata": {},
   "source": [
    "## 查看支持的评估函数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "639f7adc",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[{'name': 'lvwerra/test', 'type': 'metric', 'community': True, 'likes': 0},\n",
       " {'name': 'angelina-wang/directional_bias_amplification',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 6},\n",
       " {'name': 'cpllab/syntaxgym', 'type': 'metric', 'community': True, 'likes': 1},\n",
       " {'name': 'lvwerra/bary_score',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 1},\n",
       " {'name': 'hack/test_metric', 'type': 'metric', 'community': True, 'likes': 0},\n",
       " {'name': 'yzha/ctc_eval', 'type': 'metric', 'community': True, 'likes': 1},\n",
       " {'name': 'codeparrot/apps_metric',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 7},\n",
       " {'name': 'mfumanelli/geometric_mean',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 1},\n",
       " {'name': 'daiyizheng/valid', 'type': 'metric', 'community': True, 'likes': 0},\n",
       " {'name': 'erntkn/dice_coefficient',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'mgfrantz/roc_auc_macro',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'Vlasta/pr_auc', 'type': 'metric', 'community': True, 'likes': 0},\n",
       " {'name': 'gorkaartola/metric_for_tp_fp_samples',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'idsedykh/metric', 'type': 'metric', 'community': True, 'likes': 0},\n",
       " {'name': 'idsedykh/codebleu2',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 1},\n",
       " {'name': 'idsedykh/codebleu',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'idsedykh/megaglue',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'Vertaix/vendiscore',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 7},\n",
       " {'name': 'GMFTBY/dailydialogevaluate',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'GMFTBY/dailydialog_evaluate',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'jzm-mailchimp/joshs_second_test_metric',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'ola13/precision_at_k',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'yulong-me/yl_metric',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'abidlabs/mean_iou',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'abidlabs/mean_iou2',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'KevinSpaghetti/accuracyk',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'NimaBoscarino/weat',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'ronaldahmed/nwentfaithfulness',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'Viona/infolm', 'type': 'metric', 'community': True, 'likes': 0},\n",
       " {'name': 'kyokote/my_metric2',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'kashif/mape', 'type': 'metric', 'community': True, 'likes': 0},\n",
       " {'name': 'Ochiroo/rouge_mn', 'type': 'metric', 'community': True, 'likes': 0},\n",
       " {'name': 'leslyarun/fbeta_score',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 1},\n",
       " {'name': 'anz2/iliauniiccocrevaluation',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'zbeloki/m2', 'type': 'metric', 'community': True, 'likes': 0},\n",
       " {'name': 'xu1998hz/sescore',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 15},\n",
       " {'name': 'dvitel/codebleu', 'type': 'metric', 'community': True, 'likes': 3},\n",
       " {'name': 'NCSOFT/harim_plus',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 11},\n",
       " {'name': 'JP-SystemsX/nDCG', 'type': 'metric', 'community': True, 'likes': 0},\n",
       " {'name': 'sportlosos/sescore',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'Drunper/metrica_tesi',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'jpxkqx/peak_signal_to_noise_ratio',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'jpxkqx/signal_to_reconstruction_error',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'hpi-dhc/FairEval', 'type': 'metric', 'community': True, 'likes': 4},\n",
       " {'name': 'lvwerra/accuracy_score',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'ybelkada/cocoevaluate',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 3},\n",
       " {'name': 'harshhpareek/bertscore',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 1},\n",
       " {'name': 'posicube/mean_reciprocal_rank',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 1},\n",
       " {'name': 'bstrai/classification_report',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 2},\n",
       " {'name': 'omidf/squad_precision_recall',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'Josh98/nl2bash_m', 'type': 'metric', 'community': True, 'likes': 1},\n",
       " {'name': 'BucketHeadP65/confusion_matrix',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 2},\n",
       " {'name': 'BucketHeadP65/roc_curve',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'yonting/average_precision_score',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'transZ/test_parascore',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'transZ/sbert_cosine',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'hynky/sklearn_proxy',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'xu1998hz/sescore_english_mt',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 1},\n",
       " {'name': 'xu1998hz/sescore_german_mt',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 1},\n",
       " {'name': 'xu1998hz/sescore_english_coco',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 1},\n",
       " {'name': 'xu1998hz/sescore_english_webnlg',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 1},\n",
       " {'name': 'unnati/kendall_tau_distance',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'Viona/fuzzy_reordering',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'Viona/kendall_tau',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'lhy/hamming_loss', 'type': 'metric', 'community': True, 'likes': 0},\n",
       " {'name': 'lhy/ranking_loss', 'type': 'metric', 'community': True, 'likes': 0},\n",
       " {'name': 'Muennighoff/code_eval_octopack',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 2},\n",
       " {'name': 'yuyijiong/quad_match_score',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 1},\n",
       " {'name': 'AlhitawiMohammed22/CER_Hu-Evaluation-Metrics',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 2},\n",
       " {'name': 'Yeshwant123/mcc', 'type': 'metric', 'community': True, 'likes': 2},\n",
       " {'name': 'phonemetransformers/segmentation_scores',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'sma2023/wil', 'type': 'metric', 'community': True, 'likes': 0},\n",
       " {'name': 'chanelcolgate/average_precision',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'ckb/unigram', 'type': 'metric', 'community': True, 'likes': 0},\n",
       " {'name': 'Felipehonorato/eer',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'manueldeprada/beer',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'shunzh/apps_metric',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'He-Xingwei/sari_metric',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'langdonholmes/cohen_weighted_kappa',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'fschlatt/ner_eval',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'hyperml/balanced_accuracy',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'brian920128/doc_retrieve_metrics',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'guydav/restrictedpython_code_eval',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'k4black/codebleu', 'type': 'metric', 'community': True, 'likes': 1},\n",
       " {'name': 'Natooz/ece', 'type': 'metric', 'community': True, 'likes': 0},\n",
       " {'name': 'ingyu/klue_mrc', 'type': 'metric', 'community': True, 'likes': 0},\n",
       " {'name': 'Vipitis/shadermatch',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 8},\n",
       " {'name': 'gabeorlanski/bc_eval',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'jjkim0807/code_eval',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'repllabs/mean_reciprocal_rank',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'repllabs/mean_average_precision',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'mtc/fragments', 'type': 'metric', 'community': True, 'likes': 0},\n",
       " {'name': 'DarrenChensformer/eval_keyphrase',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'kdudzic/charmatch',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'Vallp/ter', 'type': 'metric', 'community': True, 'likes': 0},\n",
       " {'name': 'DarrenChensformer/relation_extraction',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'Ikala-allen/relation_extraction',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'danieldux/hierarchical_softmax_loss',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'nlpln/tst', 'type': 'metric', 'community': True, 'likes': 0},\n",
       " {'name': 'bdsaglam/jer', 'type': 'metric', 'community': True, 'likes': 0},\n",
       " {'name': 'davebulaval/meaningbert',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'fnvls/bleu1234', 'type': 'metric', 'community': True, 'likes': 0},\n",
       " {'name': 'fnvls/bleu_1234', 'type': 'metric', 'community': True, 'likes': 0},\n",
       " {'name': 'nevikw39/specificity',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'yqsong/execution_accuracy',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'shalakasatheesh/squad_v2',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'arthurvqin/pr_auc',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'd-matrix/dmx_perplexity',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 1},\n",
       " {'name': 'akki2825/accents_unplugged_eval',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'juliakaczor/accents_unplugged_eval',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'Vickyage/accents_unplugged_eval',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'Qui-nn/accents_unplugged_eval',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'TelEl/accents_unplugged_eval',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'livvie/accents_unplugged_eval',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'DaliaCaRo/accents_unplugged_eval',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'alvinasvk/accents_unplugged_eval',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'LottieW/accents_unplugged_eval',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'LuckiestOne/valid_efficiency_score',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'Fritz02/execution_accuracy',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'huanghuayu/multiclass_brier_score',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'jialinsong/apps_metric',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'DoctorSlimm/bangalore_score',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'agkphysics/ccc', 'type': 'metric', 'community': True, 'likes': 0},\n",
       " {'name': 'DoctorSlimm/kaushiks_criteria',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'CZLC/rouge_raw', 'type': 'metric', 'community': True, 'likes': 0},\n",
       " {'name': 'bascobasculino/mot-metrics',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'SEA-AI/mot-metrics',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'SEA-AI/det-metrics',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'saicharan2804/my_metric',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'red1bluelost/evaluate_genericify_cpp',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'maksymdolgikh/seqeval_with_fbeta',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'Bekhouche/NED', 'type': 'metric', 'community': True, 'likes': 0},\n",
       " {'name': 'danieldux/isco_hierarchical_accuracy',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'ginic/phone_errors',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'berkatil/map', 'type': 'metric', 'community': True, 'likes': 0},\n",
       " {'name': 'DarrenChensformer/action_generation',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'buelfhood/fbeta_score',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'danasone/ru_errant',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'helena-balabin/youden_index',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'SEA-AI/panoptic-quality',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'SEA-AI/box-metrics',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'MathewShen/bleu', 'type': 'metric', 'community': True, 'likes': 0},\n",
       " {'name': 'berkatil/mrr', 'type': 'metric', 'community': True, 'likes': 0},\n",
       " {'name': 'BridgeAI-Lab/SemF1',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'SEA-AI/horizon-metrics',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'maysonma/lingo_judge_metric',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 1},\n",
       " {'name': 'dannashao/span_metric',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'Aye10032/loss_metric',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'ag2435/my_metric', 'type': 'metric', 'community': True, 'likes': 0},\n",
       " {'name': 'kilian-group/arxiv_score',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'bomjin/code_eval_octopack',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'svenwey/logmetric',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'bowdbeg/matching_series',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'BridgeAI-Lab/Sem-nCG',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 1},\n",
       " {'name': 'bowdbeg/patch_series',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'venkatasg/gleu', 'type': 'metric', 'community': True, 'likes': 0},\n",
       " {'name': 'kbmlcoding/apps_metric',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'jijihuny/ecqa', 'type': 'metric', 'community': True, 'likes': 0},\n",
       " {'name': 'prajwall/mse', 'type': 'metric', 'community': True, 'likes': 0},\n",
       " {'name': 'd-matrix/dmxMetric',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'dotkaio/competition_math',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'bowdbeg/docred', 'type': 'metric', 'community': True, 'likes': 0},\n",
       " {'name': 'Remeris/rouge_ru', 'type': 'metric', 'community': True, 'likes': 1},\n",
       " {'name': 'jarod0411/aucpr', 'type': 'metric', 'community': True, 'likes': 0},\n",
       " {'name': 'Ruchin/jaccard_similarity',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'phucdev/blanc_score',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'NathanMad/bertscore-with-torch_dtype',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'cointegrated/blaser_2_0_qe',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'ahnyeonchan/Alignment-and-Uniformity',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'Baleegh/Fluency_Score',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'mdocekal/multi_label_precision_recall_accuracy_fscore',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'phucdev/vihsd', 'type': 'metric', 'community': True, 'likes': 0},\n",
       " {'name': 'argmaxinc/detailed-wer',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'SEA-AI/user-friendly-metrics',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'hage2000/code_eval_stdio',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 1},\n",
       " {'name': 'hage2000/my_metric',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'Natooz/levenshtein',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'Khaliq88/execution_accuracy',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'pico-lm/perplexity',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'mtzig/cross_entropy_loss',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'kiracurrie22/precision',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'openpecha/bleurt', 'type': 'metric', 'community': True, 'likes': 0},\n",
       " {'name': 'SEA-AI/ref-metrics',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'Natooz/mse', 'type': 'metric', 'community': True, 'likes': 0},\n",
       " {'name': 'buelfhood/fbeta_score_2',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'murinj/hter', 'type': 'metric', 'community': True, 'likes': 0},\n",
       " {'name': 'pico-lm/blimp', 'type': 'metric', 'community': True, 'likes': 0},\n",
       " {'name': 'nobody4/waf_metric',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'mdocekal/precision_recall_fscore_accuracy',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'Glazkov/mars', 'type': 'metric', 'community': True, 'likes': 0},\n",
       " {'name': 'Aye10032/top5_error_rate',\n",
       "  'type': 'metric',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'nhop/L3Score', 'type': 'metric', 'community': True, 'likes': 0},\n",
       " {'name': 'maryxm/code_eval', 'type': 'metric', 'community': True, 'likes': 0},\n",
       " {'name': 'ncoop57/levenshtein_distance',\n",
       "  'type': 'comparison',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'kaleidophon/almost_stochastic_order',\n",
       "  'type': 'comparison',\n",
       "  'community': True,\n",
       "  'likes': 1},\n",
       " {'name': 'NeuraFusionAI/Arabic-Evaluation',\n",
       "  'type': 'comparison',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'lvwerra/element_count',\n",
       "  'type': 'measurement',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'prb977/cooccurrence_count',\n",
       "  'type': 'measurement',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'NimaBoscarino/pseudo_perplexity',\n",
       "  'type': 'measurement',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'ybelkada/toxicity',\n",
       "  'type': 'measurement',\n",
       "  'community': True,\n",
       "  'likes': 1},\n",
       " {'name': 'ronaldahmed/ccl_win',\n",
       "  'type': 'measurement',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'christopher/tokens_per_byte',\n",
       "  'type': 'measurement',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'lsy641/distinct',\n",
       "  'type': 'measurement',\n",
       "  'community': True,\n",
       "  'likes': 1},\n",
       " {'name': 'grepLeigh/perplexity',\n",
       "  'type': 'measurement',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'Charles95/element_count',\n",
       "  'type': 'measurement',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'Charles95/accuracy',\n",
       "  'type': 'measurement',\n",
       "  'community': True,\n",
       "  'likes': 0},\n",
       " {'name': 'Lucky28/honest',\n",
       "  'type': 'measurement',\n",
       "  'community': True,\n",
       "  'likes': 0}]"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "evaluate.list_evaluation_modules(with_details=True)#不使用社区的设置include_community=False,后面参数展示细节\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "dd8b4460",
   "metadata": {},
   "source": [
    "## 加载评估函数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "6e08b331",
   "metadata": {},
   "outputs": [],
   "source": [
    "acc=evaluate.load(path=r\"evaluate_main\\metrics\\accuracy\")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b4af1330",
   "metadata": {},
   "source": [
    "## 查看函数说明"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "cccfceab",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Accuracy is the proportion of correct predictions among the total number of cases processed. It can be computed with:\n",
      "Accuracy = (TP + TN) / (TP + TN + FP + FN)\n",
      " Where:\n",
      "TP: True positive\n",
      "TN: True negative\n",
      "FP: False positive\n",
      "FN: False negative\n",
      "\n"
     ]
    }
   ],
   "source": [
    "print(acc.description)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "57757134",
   "metadata": {},
   "source": [
    "### 查看输入说明"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "a42fa766",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Args:\n",
      "    predictions (`list` of `int`): Predicted labels.\n",
      "    references (`list` of `int`): Ground truth labels.\n",
      "    normalize (`boolean`): If set to False, returns the number of correctly classified samples. Otherwise, returns the fraction of correctly classified samples. Defaults to True.\n",
      "    sample_weight (`list` of `float`): Sample weights Defaults to None.\n",
      "\n",
      "Returns:\n",
      "    accuracy (`float` or `int`): Accuracy score. Minimum possible value is 0. Maximum possible value is 1.0, or the number of examples input, if `normalize` is set to `True`.. A higher score means higher accuracy.\n",
      "\n",
      "Examples:\n",
      "\n",
      "    Example 1-A simple example\n",
      "        >>> accuracy_metric = evaluate.load(\"accuracy\")\n",
      "        >>> results = accuracy_metric.compute(references=[0, 1, 2, 0, 1, 2], predictions=[0, 1, 1, 2, 1, 0])\n",
      "        >>> print(results)\n",
      "        {'accuracy': 0.5}\n",
      "\n",
      "    Example 2-The same as Example 1, except with `normalize` set to `False`.\n",
      "        >>> accuracy_metric = evaluate.load(\"accuracy\")\n",
      "        >>> results = accuracy_metric.compute(references=[0, 1, 2, 0, 1, 2], predictions=[0, 1, 1, 2, 1, 0], normalize=False)\n",
      "        >>> print(results)\n",
      "        {'accuracy': 3.0}\n",
      "\n",
      "    Example 3-The same as Example 1, except with `sample_weight` set.\n",
      "        >>> accuracy_metric = evaluate.load(\"accuracy\")\n",
      "        >>> results = accuracy_metric.compute(references=[0, 1, 2, 0, 1, 2], predictions=[0, 1, 1, 2, 1, 0], sample_weight=[0.5, 2, 0.7, 0.5, 9, 0.4])\n",
      "        >>> print(results)\n",
      "        {'accuracy': 0.8778625954198473}\n",
      "\n"
     ]
    }
   ],
   "source": [
    "print(acc.inputs_description)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "a5605573",
   "metadata": {},
   "source": [
    "### 评估指标计算——全局计算"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "17d0ea97",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'accuracy': 0.75}"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "acc.compute(references=[1,2,3,4],predictions=[1,2,3,5])"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "e3584315",
   "metadata": {},
   "source": [
    "### 评估指标计算——迭代计算"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "ffbe3f51",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'accuracy': 0.75}"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "for ref,pred in zip([1,2,3,4],[1,2,3,5]):\n",
    "    acc.add(reference=ref,prediction=pred)\n",
    "acc.compute()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "8901a805",
   "metadata": {},
   "source": [
    "## 常用：多个指标评估计算"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b697767c",
   "metadata": {},
   "source": [
    "多分类的时候好像有BUG，直接用sklearn的了"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "id": "6b6567e1",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'accuracy': 0.5, 'f1': 0.5, 'recall': 0.5, 'precision': 0.5}\n"
     ]
    }
   ],
   "source": [
    "from sklearn.metrics import accuracy_score, f1_score, recall_score, precision_score\n",
    "\n",
    "predictions = [0,2,3,1,4,5]\n",
    "references = [0,1,2,3,4,5]\n",
    "\n",
    "results = {\n",
    "    \"accuracy\": accuracy_score(references, predictions),\n",
    "    \"f1\": f1_score(references, predictions, average=\"macro\"),\n",
    "    \"recall\": recall_score(references, predictions, average=\"macro\"),\n",
    "    \"precision\": precision_score(references, predictions, average=\"macro\")\n",
    "}\n",
    "print(results)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "67f015fb",
   "metadata": {},
   "source": [
    "## 评估结果可视化"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9a8414e5",
   "metadata": {},
   "source": [
    "### 雷达图"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0eb005b7",
   "metadata": {},
   "source": [
    "面积越大，越好"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "id": "3c5ce0b8",
   "metadata": {},
   "outputs": [],
   "source": [
    "from evaluate.visualization import radar_plot #目前只支持雷达图\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "id": "23b85982",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 5 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "data=[\n",
    "    {'accuracy': 0.94, 'f1': 0.95, 'recall': 0.99, 'precision': 0.986},\n",
    "    {'accuracy': 0.67, 'f1': 0.71, 'recall': 0.59, 'precision': 0.59},\n",
    "    {'accuracy': 0.95, 'f1': 0.85, 'recall': 0.85, 'precision': 0.85},\n",
    "    {'accuracy': 0.59, 'f1': 0.52, 'recall': 0.52, 'precision': 0.54}\n",
    "]\n",
    "model_names=[\"Model_1\",\"Model_2\",\"Model_3\",\"Model_4\"]\n",
    "plot=radar_plot(data=data,model_names=model_names)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "663cfd86",
   "metadata": {},
   "source": [
    "## 查看HuggingFace任务的模型"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0efaeb0c",
   "metadata": {},
   "source": [
    "https://huggingface.co/tasks"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6fc8e7a8",
   "metadata": {},
   "source": [
    "## 对之前的文本分类任务进行修改，使用封装好的评估函数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "id": "da4cfae9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "649e7991a60c457d90972254995a3cf4",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Map:   0%|          | 0/6988 [00:00<?, ? examples/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "b29ce73637534d13a7c330e315290d0b",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Map:   0%|          | 0/777 [00:00<?, ? examples/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Some weights of the model checkpoint at E:\\HuggFace_model\\rbt3 were not used when initializing BertForSequenceClassification: ['cls.predictions.transform.dense.bias', 'cls.predictions.bias', 'cls.seq_relationship.weight', 'cls.predictions.decoder.weight', 'cls.predictions.transform.LayerNorm.bias', 'cls.predictions.transform.LayerNorm.weight', 'cls.seq_relationship.bias', 'cls.predictions.transform.dense.weight']\n",
      "- This IS expected if you are initializing BertForSequenceClassification from the checkpoint of a model trained on another task or with another architecture (e.g. initializing a BertForSequenceClassification model from a BertForPreTraining model).\n",
      "- This IS NOT expected if you are initializing BertForSequenceClassification from the checkpoint of a model that you expect to be exactly identical (initializing a BertForSequenceClassification model from a BertForSequenceClassification model).\n",
      "Some weights of BertForSequenceClassification were not initialized from the model checkpoint at E:\\HuggFace_model\\rbt3 and are newly initialized: ['classifier.bias', 'classifier.weight']\n",
      "You should probably TRAIN this model on a down-stream task to be able to use it for predictions and inference.\n"
     ]
    }
   ],
   "source": [
    "# 第一步到第五步\n",
    "from transformers import AutoTokenizer,AutoModelForSequenceClassification\n",
    "from datasets import load_dataset\n",
    "dataset=load_dataset(\"csv\",data_files=\"tst_fold\\ChnSentiCorp_htl_all copy.csv\",split=\"train\")\n",
    "dataset=dataset.filter(lambda x: x[\"review\"] is not None)\n",
    "datasets=dataset.train_test_split(test_size=0.1)\n",
    "import torch\n",
    "tokenizer=AutoTokenizer.from_pretrained(r\"E:\\HuggFace_model\\rbt3\")\n",
    "def process_func(examples):\n",
    "    tokenized_examples=tokenizer(examples[\"review\"],max_length=128,truncation=True)\n",
    "    tokenized_examples[\"labels\"]=examples[\"label\"]\n",
    "    return tokenized_examples\n",
    "tokenized_datasets=datasets.map(process_func,batched=True,remove_columns=datasets[\"train\"].column_names)\n",
    "from torch.utils.data import DataLoader\n",
    "from transformers import DataCollatorWithPadding\n",
    "\n",
    "trainset,validset=tokenized_datasets[\"train\"],tokenized_datasets[\"test\"]#训练集，测试集\n",
    "\n",
    "# 加载成 dataloader\n",
    "train_loader=DataLoader(trainset,batch_size=32,shuffle=True,collate_fn=DataCollatorWithPadding(tokenizer=tokenizer))\n",
    "valid_loader=DataLoader(validset,batch_size=64,shuffle=False,collate_fn=DataCollatorWithPadding(tokenizer=tokenizer))\n",
    "\n",
    "from torch.optim import Adam\n",
    "model=AutoModelForSequenceClassification.from_pretrained(r\"E:\\HuggFace_model\\rbt3\")#模型\n",
    "\n",
    "if torch.cuda.is_available():\n",
    "    model=model.cuda()\n",
    "\n",
    "\"\"\"因为做的是迁移学习，不需要那么高的学习率\"\"\"\n",
    "optimizer=Adam(model.parameters(),lr=2e-5)#优化器\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 98,
   "id": "dc24aed1",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1轮，global_step:0,loss:0.10774040222167969\n",
      "1轮，global_step:100,loss:0.05212635174393654\n",
      "1轮，global_step:200,loss:0.3361685574054718\n",
      "========ep:1,综合评估:{'accuracy': 0.8957528957528957, 'f1': 0.8747784045124899, 'recall': 0.8762223180903077, 'precision': 0.8733766233766234}\n",
      "2轮，global_step:300,loss:0.1609998494386673\n",
      "2轮，global_step:400,loss:0.17343474924564362\n",
      "========ep:2,综合评估:{'accuracy': 0.9021879021879022, 'f1': 0.882950382950383, 'recall': 0.8859049947272553, 'precision': 0.8801648014355197}\n",
      "3轮，global_step:500,loss:0.10531213134527206\n",
      "3轮，global_step:600,loss:0.0304196085780859\n",
      "========ep:3,综合评估:{'accuracy': 0.9060489060489061, 'f1': 0.8877107613242452, 'recall': 0.8912017064519222, 'precision': 0.8844508125932323}\n"
     ]
    }
   ],
   "source": [
    "\"\"\"主要修改这一步\"\"\"\n",
    "################## 评估 ####################\n",
    "from sklearn.metrics import accuracy_score, f1_score, recall_score, precision_score\n",
    "\n",
    "def evaluate_4(references, predictions):\n",
    "    results = {\n",
    "        \"accuracy\": accuracy_score(references, predictions),\n",
    "        \"f1\": f1_score(references, predictions, average=\"macro\"),\n",
    "        \"recall\": recall_score(references, predictions, average=\"macro\"),\n",
    "        \"precision\": precision_score(references, predictions, average=\"macro\")\n",
    "    }\n",
    "    return results\n",
    "# #################################\n",
    "\n",
    "def evaluate():\n",
    "    model.eval()\n",
    "    pred_labels=[]\n",
    "    true_labels=[]\n",
    "    with torch.inference_mode():#禁止修改张量，禁止梯度计算\n",
    "        for batch in valid_loader:\n",
    "            if torch.cuda.is_available():\n",
    "                batch={k:v.cuda() for k,v in batch.items()}\n",
    "            output=model(**batch)\n",
    "            pred=torch.argmax(output.logits,dim=-1)\n",
    "            true_labels+=list(batch[\"labels\"].long().to(\"cpu\").detach().numpy())\n",
    "            pred_labels+=list(pred.to(\"cpu\").detach().numpy())\n",
    "            \n",
    "    return evaluate_4(true_labels,pred_labels)\n",
    "\n",
    "def train(epoch=3,log_step=100):\n",
    "    global_step=0\n",
    "    for ep in range(epoch):\n",
    "        model.train()\n",
    "        for batch in train_loader:\n",
    "            if torch.cuda.is_available():\n",
    "                \"\"\"\n",
    "                转移后的 batch 中的每个张量（v）都在 GPU 上，而字典结构（k）本身不涉及设备，只是字段名。\n",
    "                \"\"\"\n",
    "                batch={k:v.cuda() for k,v in batch.items()}#k是键，id,labels等等，v就是值，把这些值搬到GPU\n",
    "            optimizer.zero_grad()\n",
    "            output=model(**batch)\n",
    "            output.loss.backward()#model的output有loss，来做反向传播\n",
    "            optimizer.step()\n",
    "            if global_step%100==0:\n",
    "                print(f\"{ep+1}轮，global_step:{global_step},loss:{output.loss.item()}\")\n",
    "            global_step+=1\n",
    "        clf=evaluate()\n",
    "        print(f\"========ep:{ep+1},综合评估:{clf}\")\n",
    "\n",
    "train()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "28aa1d1f",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "transformers",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.21"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
